/******************************************************************************************************
*
*										Process
*
*******************************************************************************************************
*******************************************************************************************************
*
*								Written By: Steven Bankhead
*
******************************************************************************************************/
#pragma once

#include "stdio.h"
#include "string.h"

#define MAX_PROCESS_NAME	128

class Process
{
private:
	char type[MAX_PROCESS_NAME];
	bool kill;
	Process	*next;

public:
	Process() {}
	Process(char name[])
	{
		strcpy(type, name);
		next = NULL;
		kill = false;
	}
	~Process() {}

	void SetType(char name[]);
	char *GetType();

	void SetKill(bool killValue);
	bool GetKill();

	void SetNext(Process *nextProcess);
	Process *GetNext();

	//Virtuals
	virtual void UpdateProcess(int milliseconds)
	{};			/* Required */
	virtual void KillProcess() { kill = true; }				/* Not Required */
	virtual void InitializeProcess(){};						/* Not Required */
};